/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package comandaXM.vista.manteniment.proveidor;


import comandaXM.accions.ProveidorsAct;
import comandaXM.classes.manteniment.proveidor.Notificacio;
import comandaXM.classes.manteniment.proveidor.Proveidor;
import comandaXM.excepcions.ExceptionHibernate;
import comandaXM.excepcions.ExceptionXML;
import comandaXM.utils.JOPtionPaneXM;
import comandaXM.utils.JPanelTaula;
import comandaXM.utils.TDSLanguageUtils;
import comandaXM.utils.TableModel;
import java.awt.event.ActionEvent;
import java.util.Iterator;




/**
 *
 * @author xmarti
 */
public class JPNotificacions  extends JPanelTaula{
    private Proveidor proveidorActual; 
    private Notificacio notificacioActual; 
    private JOPtionPaneXM optionPane= new JOPtionPaneXM(); 
    private ProveidorsAct proveidorAct= new ProveidorsAct(); 
    public JPNotificacions( Proveidor proveidor) throws ExceptionHibernate {
        super("jpNotificacioProveidor");
        this.proveidorActual= proveidor; 
         
        super.chargeTable();        
    }

    @Override
    public void nou(ActionEvent evt) {
        try {            
            super.getFormatTable().setFormat();
            super.getFormatTable().saveFormat();
            notificacioActual= new Notificacio() ; 
            notificacioActual.setProveidor(proveidorActual);
       
            final JDNotificacio dialog = new JDNotificacio(null,true,notificacioActual);               
            dialog.setLocationRelativeTo(null);
            dialog.setVisible(true);
            if(dialog.isActualitzar()){
                try {                     
                    proveidorActual.getNotificacions().add(notificacioActual); 
                    this.chargeTable();
                } catch (ExceptionHibernate ex) {
                    optionPane.errMessagge(ex.getMessage());
                }
            }
            
        } catch (ExceptionXML ex) {
            
        }
        
    }
 

    @Override
    public void modificar(ActionEvent evt) {        
        this.notificacioActual=(Notificacio) this.getObject(); 
        final JDNotificacio dialog = new JDNotificacio(null,true,this.notificacioActual);               
        dialog.setLocationRelativeTo(null);
        dialog.setVisible(true);
        if (dialog.isActualitzar()){
            try { 
                //centreActual.setId(this.proveidorAct.add(centreActual, false));
                //this.proveidorActual.getCentres().add(centreActual); 
                this.chargeTable();
            }catch (ExceptionHibernate ex) {
                this.optionPane.errMessagge(ex.getMessage());
            }
        }        
    }

    @Override
    public void eliminar(ActionEvent evt) {                        
        if(this.optionPane.ConfirmRemove()){
            try {
                this.proveidorActual.getNotificacions().remove((Notificacio) this.getObject());
                this.proveidorAct.remove((Notificacio) this.getObject());
                this.chargeTable();
            } catch (ExceptionHibernate ex) {                
                this.optionPane.errMessagge(ex.getMessage());                
            }
        }
    }

    @Override
    public TableModel getModel() throws ExceptionHibernate {
        TableModel dadesTaula = null;                            
            //TODO ESTIC AQUI CAL REDIFINIR ELS CENTRES. 
            String [] columns={                                                                                                         
                          TDSLanguageUtils.getMessage("jpNotificacions.JTable.descripcio.titol"),                          
                          TDSLanguageUtils.getMessage("jpNotificacions.JTable.actiu.titol"),
                          };    
            Object[][] dades=null;                
            if (this.proveidorActual.getNotificacions().size()>0){
                dades=new Object[this.proveidorActual.getNotificacions().size()][columns.length];                          
                Integer i=0;            
                for (Iterator it = this.proveidorActual.getNotificacions().iterator(); it.hasNext();) {
                    Notificacio c = (Notificacio) it.next();                
                    dades[i][0]= c;                                     
                    dades[i][1]= c.isActiva();
                    i++;
                }     
            }                  
        return new TableModel(columns, dades); 
    }

    @Override
    public void select() {                

    }
    
    
    
}
